# 模块
# 内置模块
# 第三方模块（第三方库）
# cmd输入pip install
# 自定义模块
# 不要与内置模块名重复

# 导入模块
# import 模块
# import test
# test.func1()
# test.func2()
# 可以一个import导入多个模块（不推荐）

# from ... import ...
# from test import func1
# func1()

# from ... import *
# from test import *
# func1()
# func2()
# 不建议使用from，因为会有命名冲突
# 如果调用时重名，则使用最后一次import的模块中的函数

# 给模块起别名
# import test as anotherName
# anotherName.func1()
# 给功能起别名
# from test import func1 as anotherName
# anotherName()

# 内置全局变量
# if __name__ == '__main__':
# 用来控制py文件在不同的应用场景下执行不同的逻辑
# 文件在当前程序执行 __name__ == '--main--'
# 文件被其他文件导入 __name__ == 模块名
# import test
# test.func1()

# 包
# 就是项目结构中的文件夹（目录）
# 自动包含一个__init__.py
# 作用：避免模块名称冲突问题，让结构更清晰
# __init__.py 作用：导入这个包内的其他模块
# import pkg
# pkg.login.login()
# from pkg import login
# login.login()

# __all__
# 本质上时一个列表，列表里面的元素就是要导入的模块
# 可以控制要导入的东西
# from pkg import *
# register.reg()
# login.login()

